#ifndef BASE_H
#define BASE_H

#define YYSTYPE char*

#ifndef CLASSES
#define CLASSES
typedef enum  {
	PROGRAMA = 0,
	CAB_PROGRAMA,
	IDENTIFICADOR,
	CONST_INTEIRA,
	DECLARACAO_VARIAVEL,
	TIPO,
	INSTRUCAO_LISTA,
	INSTRUCAO_ATRIBUICAO,
	EXP_SIMPLES,
	VARIAVEL,
	PROCEDIMENTO,
	FUNCAO,
	CAMPO_REGISTRO,
	PALAVRA_RESERVADA,
	REGRA,
	OPERADOR,
	SINAL
} t_kind;

#endif

#ifndef TIPOS
#define TIPOS
typedef enum {
	VOID = -1,
	INTEIRO,
	REAL,
	CARACTER,
	TEXTO,
	REGISTRO,
	MATRIZ,
	BOOLEANO,
	ARQUIVO
} t_types;

#endif

typedef union {
		int inteiro;
		float real;
		char caracter;
		char *texto;
		int *outros;
	} t_values;


typedef struct POSITION {
	int line;
	int column;
} t_position;

#endif
